package com.gobang.service;

import com.gobang.domain.dto.ScoreUpdateRequestDTO;
import com.gobang.domain.vo.ScoreRecordQueryVO;
import com.gobang.domain.vo.ScoreUpdateResponseVO;

/**
 * 积分管理业务服务接口
 * 负责积分计算、积分更新和积分记录管理
 * 
 * @author System
 * @since 1.0.0
 */
public interface ScoreService {

    /**
     * 更新用户积分
     * 内部接口，游戏结束后调用，计算积分变化，更新用户积分和统计信息，创建积分记录
     *
     * @param request 积分更新请求数据
     * @return 积分更新结果
     */
    ScoreUpdateResponseVO updateUserScore(ScoreUpdateRequestDTO request);

    /**
     * 查询用户积分流水记录
     * 支持分页查询，按时间倒序排列
     *
     * @param userId 用户ID
     * @param current 当前页码
     * @param size 每页大小
     * @return 积分流水记录分页数据
     */
    ScoreRecordQueryVO getScoreRecordsByUserId(Long userId, Integer current, Integer size);
} 